Aller au contenu principal

Cours - Déployer un site web simple avec nginx

Généralités

  • Un serveur web/HTTP "léger"
  • Écoute sur le port 80 (et generalement 443 aussi si configuré pour HTTPS)
  • Sert des pages web

Intérêt dans cette formation :

  • manipuler un autre service
  • rendre + utile/concret le fait d'avoir un serveur

Configuration, logs

  • /etc/nginx/nginx.conf : conf principale
  • /etc/nginx/sites-enabled/default : conf du site par défaut
  • /var/log/nginx/access.log : le log d'accès aux pages
  • /var/log/nginx/error.log : les erreurs (s'il y'en a)

/etc/nginx/sites-enabled/default

server {
listen 80 default_server;
listen [::]:80 default_server;

# [...]
}

Location blocks

   location / {
alias /var/www/html/;
}

location /blog {
alias /var/www/blog/;
}

En allant sur monsite.web/blog, on accédera aux fichiers dans /var/www/blog/ (par défaut, index.html généralement)

Location blocks

   location / {
alias /var/www/html/;
}

location /blog {
alias /var/www/blog/;
}

location /app {
proxy_pass http://127.0.0.1:1234/;
}

En allant sur monsite.web/app, nginx deleguera la requête à un autre programme sur la machine qui écoute sur le port 1234.

nginx -t : verifier que la conf semble correcte

$ nginx -t
nginx: the configuration file /etc/nginx/nginx.conf syntax is ok
nginx: configuration file /etc/nginx/nginx.conf test is successfu

(on peut ensuite faire systemctl reload nginx en toute sérénité)

Fichier de log (access.log)

88.66.22.66 - - [10/Oct/2018:20:13:23 +0000] "GET / HTTP/1.1" 403 140 "-" "Mozilla/5.0 (X11; Linux x86_64; rv:56.0) Gecko/20100101 Firefox/56.0 Waterfox/56.0"
88.66.22.66 - - [10/Oct/2018:20:15:11 +0000] "GET / HTTP/1.1" 200 57 "-" "Mozilla/5.0 (X11; Linux x86_64; rv:56.0) Gecko/20100101 Firefox/56.0 Waterfox/56.0"
88.66.22.66 - - [10/Oct/2018:20:15:14 +0000] "GET /test HTTP/1.1" 301 185 "-" "Mozilla/5.0 (X11; Linux x86_64; rv:56.0) Gecko/20100101 Firefox/56.0 Waterfox/56.0"
88.66.22.66 - - [10/Oct/2018:20:15:15 +0000] "GET /test/ HTTP/1.1" 200 57 "-" "Mozilla/5.0 (X11; Linux x86_64; rv:56.0) Gecko/20100101 Firefox/56.0 Waterfox/56.0"

Fichier d'erreurs (error.log)

(Exemple)

2018/10/10 09:06:44 [error] 28638#28638: *851331 open() "/usr/share/nginx/html/.well-known/assetlinks.json" failed (2: No such file or directory), client: 66.22.66.33, server: dismorphia.info, request: "GET /.well-known/assetlinks.json HTTP/1.1", host: "dismorphia.info"

(ACHTUNG : quand on débugge, toujours comparer l'heure actuelle du serveur à l'heure des erreurs pour vérifier quand elles ont eu lieu !)